1. Technical Field
The present invention pertains to transmission of data within a communications network. In particular, the present invention pertains to a method and system for transferring data in a communications network in which plural copies of the data are sent simultaneously over different paths in the network to enhance reliability of data delivery.
2. Discussion of Related Art
A typical network includes several nodes that communicate with each other. Data travels from a source or originating node to a receiving or destination node along communication paths between network nodes. Each network has an overall architecture or design structure for the nodes that organizes the network and corresponding processes.
Successful delivery and receipt of data within a network can be determined by receipt of an acknowledgement message (ACK). An acknowledgement message (ACK) is a response from the receiving or destination node to the source or originating node. The message indicates that a data packet was received without errors and instructs the source node to send the next data packet. The acknowledgement message (ACK) is commonly sent between the receiving and originating nodes within a predetermined period of time or ACK timeout period. The network is commonly designed to wait for this predetermined time interval for the ACK message to be received from the destination node before taking further action (e.g., retransmission). With respect to a packet or message traversing several network nodes, the ACK timeout period, generally greater than twice the round trip delay for sending data in a network, may be long in order to avoid unnecessary retransmission over the same path. If no acknowledgement is received within a predetermined period for reply (e.g., a time out occurs), the packet is re-transmitted. Thus, a significant time interval can pass prior to discovery by a routing protocol of a failed path or an unsuccessful packet transmission. Further, the network likely re-transmits the packet on the same path when the routing protocol is unaware of the failed route, thereby preventing the re-transmitted packet from reaching its destination.
Current networks that require reliable and fast delivery are designed with redundant paths and large bandwidths. However, the network usually uses only one path at a time, where the utilized path is typically the shortest or lowest cost path. Failure of this single path may cause the packet to be undelivered in spite of the availability of redundant operational paths. Further, alternative paths may be used only after message delivery has failed, thereby increasing message delivery time since the source and/or intermediate nodes need to discover the failed path and switch to an alternative path. This is undesirable where speed of delivery is crucial.
Some current networks use a main router and a spare router within a node to hasten transition to a backup router in a multi-router environment in the event of failed data delivery. Inclusion or use of a spare router within the node does not improve the likelihood that a packet is delivered on the initial attempt. When a spare router is included, additional resources, such as additional IP addresses, are needed to support the spare router. This increases the demand for IP address space and the complexity of maintaining and synchronizing the network routing table. Further, including the spare router within the node increases the cost of producing that node. Moreover, current operational capabilities of routers do not provide for minimizing the path overlap between the main router and the spare router.
A network typically employs a conventional protocol arrangement. One type of arrangement includes the Open Systems Interconnection (OSI) Reference Model protocol stack as illustrated in FIG. 1. The stack includes a physical layer 110, a data link layer 120, a network layer 130, a transport layer 140, a session layer 150, a presentation layer 160 and an application layer 170. Each layer performs a predefined function (e.g., a group of related tasks). The physical, data link, network, and transport layers address transmission of data (e.g., packaging, routing, verifying, and transmitting data). These layers handle sending data regardless of the data type. The session, presentation and application layers are application-oriented (e.g., presenting the application interface) and are not concerned with the manner in which the data is transmitted.
Physical layer 110 handles the mechanical, electrical, functional, and procedural aspects of data transmission. Data link layer 120 provides control of physical layer 110, and detects and possibly corrects errors that can occur. This layer is concerned with signal interference on the physical transmission media commonly resulting from sources, such as cosmic rays and stray magnetic interference.
Network layer 130 provides the physical routing of the data (e.g., determining the path between nodes). This layer examines the network topology to determine the best route to send a message. The network layer is commonly referred to as the Internet Protocol (IP) layer and uses a routing protocol to determine the path along which data or a packet is sent.
Transport layer 140 establishes, maintains, and terminates communications between two nodes. This layer manages the manner in which data is sent, such as determining sending order and priority. The transport layer further checks that the data received at the destination node matches or is consistent with the data sent from the source or origination node.
Session layer 150 organizes and synchronizes the exchange of data between application processes. This layer works with application layer 170 to provide data to notify an application about the progress of transmission and reception of data. The session layer further provides timing and flow control by coordinating communications between different applications (e.g., communications about the status of each application). The session layer can resynchronize applications that are currently connected to each other, such as when communications are temporarily interrupted or when an error has occurred that results in loss of data.
Presentation layer 160 converts data from the application layer into a common format understandable and usable by the physical, data link, network and transport layers. Node-dependent data from the application layer is converted into node-independent format for the physical, data link, network and transport layers. The presentation layer does the reverse conversion for incoming data by converting data in node-independent format from the physical, data link, network and transport layers into node-dependent data for the application layer.
Application layer 170 is the end-user interface, where applications (e.g., electronic mail, database display modules, etc.) reside. This layer may display received information and send new user data to the physical, data link, network and transport layers.
In operation, when the IP layer receives a data packet from an upper stack layer, the IP layer selects a single path for delivery of the data packet to a destination. If the delivery attempt fails due to a bad path, the IP layer is unaware of this situation. The routing protocol used by the IP layer may discover a bad path and select a new path for the destination. However, data packets previously transmitted over the bad path are not delivered and, if no replacement data packets are generated by an upper stack layer, the destination does not receive data packets even though alternative paths may exist. The generation of a new data packet to replace the lost data packet using application or transport layer acknowledgement timeout and the discovery of a failed path by the routing protocol are slow. Further, time is required to switch from a failed to an alternative path based on a discovery time of the failed path by an IP routing protocol. This is undesirable for critical messages that need to reach their destination in the shortest time possible.
The networks described above generally increase message reliability by focusing on the ability to re-transmit and route a packet in response to a delivery failure. Basically, the networks find/switch to an alternative route for a packet in response to failure of an initial route as described above. However, this technique suffers from several disadvantages as described above, including undesired delay, failed delivery in the presence of alternative routes, and lack of enhancement of successful delivery on an initial attempt.
In an attempt to overcome these deficiencies, the related art provides an alternative technique employing plural routing paths. For example, U.S. Pat. No. 6,751,746 (Jain et al.) discloses a method of operating a fault tolerant connection in a network that includes a number of network elements and a number of links. Each of the network elements is coupled to at least one other of the network elements by at least one of the links. The method identifies a first path and a second path. The first path is between a first one of the network elements and a second one of the network elements, as is the second path. Moreover, the first path and the second path are disjoint. This disjointedness can be any difference between the two paths (e.g., any combination of different network elements or links). A packet is sent from the first one of the network elements via the first path, while a duplicate packet is sent from the first one of the network elements via the second path. Once these packets have been sent, at least one of the packet and the duplicate packet are received at the second one of the network elements. If both the packet and the duplicate packet are received at the second one of the network elements, one of the two is discarded (e.g., by simply ignoring the last one received).
This technique similarly suffers from several disadvantages. In particular, the network routers employed must be specialized to handle the multiple packets that are sent along different paths. The routers are customized to include a label switching protocol or to modify routing tables to force the packets along the disjoint paths. However, the specialized routers increase the expense and complexity of producing nodes for the network. In addition, the specialized routers prevent use of the technique with networks employing conventional routers, thereby requiring a substantial overhaul of the network to implement the technique.